"""
Source: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html
"""

# region [Global Imports]

from typing import Any, Generic, Hashable, TypeVar

from typing_extensions import (
    Final,
    Literal,
    NoReturn,
    ParamSpec,
    Protocol,
    TypeAlias,
    TypeGuard,
    final,
    overload,
)

# endregion [Global Imports]

__all__: Final = []

# region [Global Generics]

_RowKey_t = TypeVar("_RowKey_t", bound=Hashable)

_ColumnKey_t = TypeVar("_ColumnKey_t", bound=Hashable)

_Value_t = TypeVar("_Value_t")

# endregion [Global Generics]

class DataFrame(Generic[_Value_t, _RowKey_t, _ColumnKey_t]):
    # region [Constructor]
    def __new__(
        cls,
        data: Any = ...,
        index: Any = ...,
        columns: Any = ...,
        dtype: Any = ...,
        copy: bool = ...,
    ) -> DataFrame[Any, Any, Any]: ...
    # endregion [Constructor]

    # region [Magic Methods]

    # region [__len__]
    def __len__(self) -> int: ...
    # endregion [__len__]

    # endregion [Magic Methods]

    # region [Incomplete]
    def __getattr__(self, key: str, /) -> Any: ...  # FIXME
    # endregion [Incomplete]
